package thread;

public class demo19 {
    public static void main(String[] args) throws InterruptedException {
        Thread t = new Thread(()->{
            while (true){
                //TIMED_WAITING 阻塞。由于sleep这种固定时间的方式产生的阻塞
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            }
        });
        //在调用start之前获取状态，此时就是new状态
        //Thread对象已经有了。start方法还没有调用
        System.out.println(t.getState());
        t.start();
        //RUNNABLE就绪状态（线程已经在cpu上执行了/线程正在排队等待上cpu执行）
        for (int i = 0;i<5;i++){
            System.out.println(t.getState());
            Thread.sleep(1000);
        }
        t.join();
        //在线程执行结束之后，获取线程的状态，此时是TERMINATED
        //Thread对象还在，内核中的线程已经没了
        System.out.println(t.getState());
    }
}
